#!/bin/bash
set -ex
#set -e
# -------------------------------------------------------------------------------
# Filename:     deploy_env_s.sh
# UpdateDate:   2025/07/02
# Description:  一键搭建验证环境。
# Example:      cd /home/share/pytorch2.5/gpustack/tools/ && bash deploy_env_s.sh
# Depends:      commit id： ac42c6b21de3a515b5821a3c212a519cb5b98bab
# Notes:        本脚本适用于初次进入docker容器环境；不适用于再次进入容器，可能会有意想不到问题
# -------------------------------------------------------------------------------

#1. 使用 Cambricon Pytorch docker 镜像并激活“pytorch_infer”虚拟环境.
#source /torch/venv3/pytorch_infer/bin/activate
#2. 在线安装 GPUStack，根据实际网速情况，一般在线安装花费时间比较久，请耐心等待。需等新版本（大于v0.6.2）后才启用。
#pip install "gpustack[audio]"
#2. 源码安装 gpustack[audio]，会篡改torch版本，需要手动回退，安装torch2.5.0-cpu
cd /workspace && git clone https://github.com/gpustack/gpustack.git \
    && cd gpustack && mkdir -p gpustack/ui \
    && wget https://gpustack-ui-1303613262.cos.accelerate.myqcloud.com/releases/latest.tar.gz \
    && tar -zxvf latest.tar.gz && cp -av dist/. gpustack/ui && cp -av static gpustack/ui
pip install -e ".[audio]"
#pip install -e ".[audio]" --no-deps  # 禁用依赖安装
#pip install -e ".[audio]" --no-build-isolation  # 避免升级已安装的依赖包，如：torch/numpy/ray
#3. 由于默认安装命令 gpustack[audio] 会改 torch 版本，需要以下操作手动回退，安装torch2.5.0-cpu等合适版本的依赖库。
pip install transformers==4.48.0
pip install torch==2.5.0 --index-url https://download.pytorch.org/whl/cpu
pip install numpy==1.26.4
pip install ray==2.40.0
#4. 安装完成后，验证安装是否成功
#gpustack version
#5. 启动 GPUStack。
# 运行以下命令启动 GPUStack 服务器和内置工作器. 默认情况下，GPUStack 服务器将在端口 80 上运行，并监听 localhost。
#gpustack start
# 如有需要，您可以使用 --host 和 --port 选项更改这些设置。
cd /workspace/gpustack
gpustack start --host 0.0.0.0 --port 8080
